home *** CD-ROM | disk | FTP | other *** search
/ Java 1996 August / Java - Summer 1996.iso / kaffe-0.2 / kaffe / object.h < prev    next >
C/C++ Source or Header  |  1996-02-11  |  1KB  |  53 lines

  1. /*
  2.  * object.h
  3.  * Object representation.
  4.  *
  5.  * Copyright (c) 1996 Systems Architecture Research Centre,
  6.  *           City University, London, UK.
  7.  *
  8.  * See the file "license.terms" for information on usage and redistribution
  9.  * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  10.  *
  11.  * Written by Tim Wilkinson <tim@sarc.city.ac.uk>, February 1996.
  12.  */
  13.  
  14. #ifndef __object_h
  15. #define __object_h
  16.  
  17. #include "gtypes.h"
  18.  
  19. struct _methodTable;
  20. struct _classes;
  21. struct _thread;
  22.  
  23. typedef struct _object {
  24.     struct _methodTable*    mtable;
  25.     uint32            idx;
  26.     uint32            size;
  27.     struct _classes*    type;
  28.     int            final;
  29.                         /* Lock info */
  30.     struct _thread*        holder;
  31.     int            count;
  32.     struct _thread*        muxWaiters;
  33.     struct _thread*        cvWaiters;
  34.                         /* The object data */
  35.     char            data[0];
  36. } object;
  37.  
  38. #define    OBJECT_MTABLE        0
  39. #define    OBJECT_IDX        4
  40. #define    OBJECT_SIZE        8
  41. #define    OBJECT_TYPE        12
  42. #define    OBJECT_DATA        36
  43.  
  44. struct _classes;
  45.  
  46. object*            alloc_object(struct _classes*, bool);
  47. struct _classes*    alloc_class(void);
  48. object*            alloc_array(int, int);
  49. object*            alloc_objectarray(int, char*);
  50. object*            alloc_multiarray(int*, char*);
  51.  
  52. #endif
  53.